package pt.gov.portaldasfinancas.servicos.documentosTransporte;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;

/**
 * <p>
 * Java class for Line complex type.
 * 
 * <p>
 * The following schema fragment specifies the expected content contained within
 * this class.
 * 
 * <pre>
 * &lt;complexType name="Line">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="OrderReferences" type="{https://servicos.portaldasfinancas.gov.pt/sgdtws/documentosTransporte/}OrderReferences" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="ProductDescription" type="{https://servicos.portaldasfinancas.gov.pt/sgdtws/documentosTransporte/}SAFPTtextTypeMandatoryMax200Car"/>
 *         &lt;element name="Quantity" type="{https://servicos.portaldasfinancas.gov.pt/sgdtws/documentosTransporte/}SAFdecimalType"/>
 *         &lt;element name="UnitOfMeasure" type="{https://servicos.portaldasfinancas.gov.pt/sgdtws/documentosTransporte/}SAFPTtextTypeMandatoryMax20Car"/>
 *         &lt;element name="UnitPrice" type="{https://servicos.portaldasfinancas.gov.pt/sgdtws/documentosTransporte/}SAFmonetaryType"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name="Line", propOrder={
	"orderReferences",
	"productDescription",
	"quantity",
	"unitOfMeasure",
	"unitPrice"
})
public class Line {

	@XmlElement(name="OrderReferences")
	protected List<OrderReferences> orderReferences;
	@XmlElement(name="ProductDescription", required=true)
	protected String productDescription;
	@XmlElement(name="Quantity", required=true)
	protected BigDecimal quantity;
	@XmlElement(name="UnitOfMeasure", required=true)
	protected String unitOfMeasure;
	@XmlElement(name="UnitPrice", required=true)
	protected BigDecimal unitPrice;

	/**
	 * Gets the value of the orderReferences property.
	 * 
	 * <p>
	 * This accessor method returns a reference to the live list, not a
	 * snapshot. Therefore any modification you make to the returned list will
	 * be present inside the JAXB object. This is why there is not a
	 * <CODE>set</CODE> method for the orderReferences property.
	 * 
	 * <p>
	 * For example, to add a new item, do as follows:
	 * 
	 * <pre>
	 * getOrderReferences().add(newItem);
	 * </pre>
	 * 
	 * 
	 * <p>
	 * Objects of the following type(s) are allowed in the list
	 * {@link OrderReferences }
	 * 
	 * 
	 */
	public List<OrderReferences> getOrderReferences() {
		if(orderReferences == null){
			orderReferences=new ArrayList<OrderReferences>();
		}
		return this.orderReferences;
	}

	/**
	 * Gets the value of the productDescription property.
	 * 
	 * @return
	 *         possible object is {@link String }
	 * 
	 */
	public String getProductDescription() {
		return productDescription;
	}

	/**
	 * Sets the value of the productDescription property.
	 * 
	 * @param value
	 *            allowed object is {@link String }
	 * 
	 */
	public void setProductDescription(String value) {
		this.productDescription=value;
	}

	/**
	 * Gets the value of the quantity property.
	 * 
	 * @return
	 *         possible object is {@link BigDecimal }
	 * 
	 */
	public BigDecimal getQuantity() {
		return quantity;
	}

	/**
	 * Sets the value of the quantity property.
	 * 
	 * @param value
	 *            allowed object is {@link BigDecimal }
	 * 
	 */
	public void setQuantity(BigDecimal value) {
		this.quantity=value;
	}

	/**
	 * Gets the value of the unitOfMeasure property.
	 * 
	 * @return
	 *         possible object is {@link String }
	 * 
	 */
	public String getUnitOfMeasure() {
		return unitOfMeasure;
	}

	/**
	 * Sets the value of the unitOfMeasure property.
	 * 
	 * @param value
	 *            allowed object is {@link String }
	 * 
	 */
	public void setUnitOfMeasure(String value) {
		this.unitOfMeasure=value;
	}

	/**
	 * Gets the value of the unitPrice property.
	 * 
	 * @return
	 *         possible object is {@link BigDecimal }
	 * 
	 */
	public BigDecimal getUnitPrice() {
		return unitPrice;
	}

	/**
	 * Sets the value of the unitPrice property.
	 * 
	 * @param value
	 *            allowed object is {@link BigDecimal }
	 * 
	 */
	public void setUnitPrice(BigDecimal value) {
		this.unitPrice=value;
	}

}
